Frage

Ich habe einen PHP-Skript, das einen Wert aus einer Zeile in meiner MySQL-Datenbank nimmt, läuft es durch eine Funktion, und wenn es es ist wahr, liefert einen Wert bestimmt, und wenn es falsch ist, muss sie auf den nächsten Wert gehen die Datenbank und die Prüfung, dass man bis schließlich eine Rückkehr wahr. Ich glaube, ich brauche mysql_fetch_assoc zu verwenden, aber ich bin nicht wirklich sicher, in welcher Art und Weise, es zu benutzen ... Ich wünsche, ich meinen Code schreiben könnte präziser sein, aber es ist eine Menge Code und das meiste davon hat keinen Einfluss auf dieses Problem ...

Keine korrekte Lösung

Andere Tipps

Ist die „Funktion“ etwas, das Sie stattdessen in der Datenbank tun könnte? Es ist wirklich ineffizient jede Zeile in der Tabelle zu verarbeiten, für irgendeine Art von Zustand zu überprüfen. Das ist genau das, was Datenbanken sind gut, nämlich die Verarbeitung von Abfragen effizient und bekommen Antworten auf Dich schnell.

So würde ich empfehlen, schauen, wie sie alle auf der Datenbankseite zu tun, so dass Ihre PHP-Code einfach ist das Endergebnis zu holen (das heißt Zeilen durch die Funktion gefiltert). Vielleicht kann, wenn Sie mehr Details von dem, was Ihre „Funktion“ schaffen macht, eine spezifischere Antwort zur Verfügung gestellt werden.

Sie können mit mysql_fetch_array, und nur auf den Werten springen geholt $ Zeile [id] und nicht $ row [ 'name']. Sagen Sie Ihre Funktion gibt wahr, Sie würden nur $ row verwenden [lastid + 1].

Wenn die ID isn `t inkrementell, das könnte funktionieren:

$qry_result = mysql_query($qry) or die(mysql_error());
while ($row = mysql_fetch_array($qry_result)) {
    $result = yourfunction($row['whatever');
    if ($result != false)
         break;
}

Auch gibt es eine PHP-Funktion next (), die einen Zeiger zu dem nächsten Arrayelement vorrückt. In Ihrer Funktion können Sie ein Array-Builder, und dann Zyklus zwischen den Elementen mit diesem umzusetzen. Hängt davon ab, was Ihre Funktion tatsächlich tut oder Skript Zweck ist. Es könnte zu einem gewissen Belastung führen, wenn es eine Menge von Ergebnissen ist.

  1. Sie sollten nicht Datenbank auf diese Weise überprüfen, wie oben erwähnt. Datenbank hat einen kleinen Unterschied aus der Textdatei.
  2. Sie sollten nicht ein Feld in Ihrer Datenbank, die eine Reihe von Werten von value1 getrennt hat: Wert2 | Wert1: Wert2 | Wert1: value2. Es muss separate Felder sein. Datenbank hat einen kleinen Unterschied aus der Textdatei und Sie besser lernen es.

Sie könnte so etwas wie diese versuchen:

SELECT *
FROM table
WHERE field NOT LIKE '%$sessionvar:%';

Ich denke, das ist, was Sie nach?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top