MySQL Daten auslesen und anzeigen

Seebär

Mitglied
hallo,
ich hoffe Ihr könnt einem absoluten Anfänger helfen. habe schon das Forum durchsucht, aber keine Antwort gefunden.
Mein Problem:
Ich habe eine Tabelle in der Artikeldaten gespeichert sind.
Jeder Artikel hat eine eindeutige ID und einen Preis.
Jetzt möchte ich mittels PHP diese Preise auslesen und anzeigen.
Allerdings befinden sich in dieser Tabelle z.B. 100 Artikel, ich möchte aber nur 10 anzeigen.
Ich könnte natürlich 10 eindeutige Abfragen nach der ID machen, aber
ich hoffe, daß eine Abfrage reicht, in der ich alle Preise einlese
und nur den Preis ausgebe, der einer bestimmten ID gehört.
also in der Art:
$query = "SELECT Preis FROM Artikel
$result=@mysql_db_query("XXX,query,$verbindung);
while ($row=mysql_fetch_array($result))
{
printf($row["Preis"]);
}
in der printf-Anweisung möchte ich also sagen, daß nur der Preis des
Artikels mit der ID=5 angezeigt wird.

Hintergrund: An mehreren Stellen auf der Seite möchte ich die Preise
verschiedener Artikel anzeigen, allerdings stehen diese Artikel in der
Datenbank nicht in einer Reihenfolge.

Ich hoffe, ihr habt mein Problem verstanden und könnt mir helfen
 
PHP:
$id = 5;

// Verbindung herstellen

$host = "localhost";
$user = "test";
$pass = "test";
$db = "testdb";

mysql_connect($host, $user, $pass);
mysql_select_db($db);
unset($host,$user,$pass,$db);


$query = "SELECT Preis FROM Artikel WHERE id='$id'";

$result = mysql_query($query);
  while ($row = mysql_fetch_array($result))
{
    echo "$row[Preis]";
  }

die variable id kann auch in der url festgelegt werden also dateiname.php?id=5

HTH
mfg gouraud
 
Danke für die schnelle Antwort,
aber leider löst das mein Problem nicht.

Ich möchte erst beim printf-Befehl sagen, von welcher ID er den
Preis anzeigen soll.
Da ich mehr als einen Preis aus der Tabelle angezeigt haben möchte,
müsste ich so jedesmal eine neue Abfrage machen.
Ich dachte also, ich lese erst einmal alle Preise aus der Tabelle
und sage erst beim printf welchen Preis er anzeigen soll.

Noch einmal kurz erklärt:
ich habe eine Tabelle mit 5 Artikeln, jedem ist eine ID und ein Preis
zugeordnet. Nun möchte ich an verschiedenen Stellen auf der Seite vier
dieser Preise angezeigt bekommen. Allerdings entspricht die Reihenfolge der Anzeige nicht der Reihenfolge in der DB. Nun kann ich
natürlich 4 mal SELECT Preis FROM Artikel WHERE ID=... machen.
Ich wollte aber einmal SELECT Preis FROM Artikel machen und über
printf den Preis von Artikel mit der ID=3 ausgeben. An einer anderen
Stelle möchte ich den Preis von Artikel mit der ID=2 ausgeben, usw.

Ich hoffe doch, daß dieses möglich ist.
 
Danke für die schnelle Antwort,
aber leider löst das mein Problem nicht.

ok, kann ich mit leben :D

Ich möchte erst beim printf-Befehl sagen, von welcher ID er den
Preis anzeigen soll.

Was ist denn überhaupt printf? warum nicht nur print? oder echo?

Da ich mehr als einen Preis aus der Tabelle angezeigt haben möchte,
müsste ich so jedesmal eine neue Abfrage machen.
Ich dachte also, ich lese erst einmal alle Preise aus der Tabelle
und sage erst beim printf welchen Preis er anzeigen soll.

gut... also auf jeden fall erst einmal die abfrage
PHP:
$query1 = mysql_query("SELECT * FROM tabellenname ORDER BY id ASC WHERE id='1'";
$query2 = mysql_query("SELECT * FROM tabellenname ORDER BY id ASC WHERE id='2'");
$query3 = mysql_query("SELECT * FROM tabellenname ORDER BY id ASC WHERE id='3'");
// usw...

FROM heißt, aus welcher Tabelle er das ausliest, nicht aus welcher Spalte.
Damit liest du alle Spalten aus und er sortiert die nach der ID.
Nun könntest du mit drei while-schleifen das ausgeben, anders gehts nicht. Jedenfalls ist mir das nicht anders bekannt.

Noch einmal kurz erklärt:
ich habe eine Tabelle mit 5 Artikeln, jedem ist eine ID und ein Preis
zugeordnet. Nun möchte ich an verschiedenen Stellen auf der Seite vier
dieser Preise angezeigt bekommen. Allerdings entspricht die Reihenfolge der Anzeige nicht der Reihenfolge in der DB. Nun kann ich
natürlich 4 mal SELECT Preis FROM Artikel WHERE ID=... machen.
Ich wollte aber einmal SELECT Preis FROM Artikel machen und über
printf den Preis von Artikel mit der ID=3 ausgeben. An einer anderen
Stelle möchte ich den Preis von Artikel mit der ID=2 ausgeben, usw.

Um einen Artikel auszugeben könntest du als while-schleife (z.B. bei Artikel 2) folgendes schreiben:

PHP:
while($row = mysql_fetch_array($query2)) {
echo "Artikel: ".$row[Artikel]."<br>Preis: ".$row[Preis];
}

soderle.... erstmal einige unklarheiten geklärt :D
 
Zuletzt bearbeitet:
PHP:
$query = "SELECT * FROM Artikel";

$result = mysql_query($query);
  while ($row = mysql_fetch_array($result))
{
    $preise[$row[id] = $row[preis];
  }

echo $preise[5]; ## für id = 5 ## also $preis[id_die_angezeigt_werden_soll]
 
Hi!
ich habe vor kurzem einen Online Shop von XT Commerce installiert.
Habe die Shop Version C v1.0 Beta2

Habe verschiedene Zahlungsmodule aktiviert und soweit funktioniert alles auch bestens.
Ein Problem gibt es: Beim Bezahlen mit Kreditkarte brauche ich auch die CVV Nummer. Diese Option gibt es ja im Modul CC. Beim Eintragen (wenn ich was bestelle) wir die Nummer auch ordnungsgemäß abgefragt und auch in der sql db gespeichert, das sehe ich über phpmyadmin.
Beim Aufrufen der Bestellung im Admin-Bereich (unter Rechnung) wird die CVV allerdings nicht mit ausgelesen.
Also habe ich in der Datei /admin/orders.php folgende Tabellenzeile eingefügt:
<td class="main"><?php echo ENTRY_CREDIT_CARD_CVV; ?></td>
<td class="main"><?php echo $order->info['cc_cvv']; ?></td>

Habe schon die Variable in der lang/german/admin/orders.php definiert wie folgt: define('ENTRY_CREDIT_CARD_CVV', 'CVV-Nummer:');

Das funktioniert auch, aber <?php echo $order->info['cc_cvv']; ?> funktioniert nicht. Er liest die CVV einfach nicht aus der SQL Datenbank aus. Was mache ich hier falsch? CVV steht im CC Modul auf "true".
Hoffe mir kann da jemand was schlaues zu sagen...

Gruß!

Malle
 
hallo liebe fori´s,

vlt kann mir auch jemand helfen, ich bin absoluter php / mysql - Neuling und bin nun absolut ratlos...

ich habe eine Seite, auf der man einmal daten in eine tabelle einfügen kann, was super funktioniert und dann direkt auch auf der seite angezeigt bekommt, auch gut, leider nur in der falschen Reihenfolge, da ich diese nach der Spalte "ID" sortiert haben möchte in absteigender Reihenfolge, nur jeder Befehl den ich versuche erzeugt eine Fehlermeldung :-( da allerdings die Tabelle jede nacht via cronjob geleert wird muss und bei phpmyadmin auch nach einer neueintragung von dieser php seite die Reihenfolge wieder durcheinander geworfen wird, bräuchte ich auf der php seite irgendwo eine andere Befehlsschleife, oder?

Hier der Abfragebefehl von meiner Seite :
PHP:
<?php
  
  $table = 'blackliste';
    
  $fileds = array();


    $query = 'SHOW
                COLUMNS
          FROM
                `'.$table.'`
        ';
 
    if( !$result = mysql_query($query) ) {
        echo '<p><strong>MySQL Error <tt>'.mysql_errno().'</tt>:</strong> '.htmlspecialchars(mysql_error()).'<pre>'.$query.'</pre></p>';
        exit;
    }

    echo '<table width="800" border="6" cellspacing="5" cellpadding="5"><thead><tr>';
    while( $row = mysql_fetch_array($result, MYSQL_ASSOC) ) {
        echo '<th>'.$row['Field'].'</th>';
        $fields[] = $row['Field'];
    }
    echo '</tr></thead>';

    $query = '
                SELECT';
    $field = current($fields);
    do {
        $query .= sprintf('%c                `%s`', 10, $field);
        if( $field = next($fields) ) {
            $query .= ',';
        }
    } while( $field );
    $query .= '
          FROM
                `'.$table.'`
        ';
    if( !$result = mysql_query($query) ) {
        echo '<p><strong>MySQL Error <tt>'.mysql_errno().'</tt>:</strong> '.htmlspecialchars(mysql_error()).'<pre>'.$query.'</pre></p>';
        exit;
    }

    echo '<tbody>';
    while( $row = mysql_fetch_array($result, MYSQL_ASSOC) ) {
        echo '<tr>';
        foreach( $row as $field ) {
            echo '<td>'.htmlentities($field).'</td>';
        }
        echo '</tr>';
    }
    echo '</tbody></table>';
?>
Wenn ich das total zu kompliziert gemacht habe wäre ich für jede Besserung dankbar :-)

Schonmal besten Dank im Voraus für Eure zahlreichen Antworten!
 
Zuletzt bearbeitet:
Bitte, bitte den Code formatiert in [PHP]mein Code[/PHP] setzen. So wie er jetzt da steht ist er nicht wirklich lesbar.

Nachtrag:
Dein SQL sollte etwa so aussehen um den neusten Datensatz zu kriegen
SQL:
SELECT 
    feld1, 
    feld2
FROM
    tabelle
ORDER BY
    id DESC
LIMIT 1
 
Zuletzt bearbeitet von einem Moderator:
ich habe meinen Threat nochmal formatiert, sorry, wußte ich nicht, bin wie gesagt Neuling, naja...

aber mit deinem sql kann ich so nichts anfangen, ich dachte irgendwo muss ich

PHP:
$query="select * from $table oder by "ID" DESC ";

eingeben...

aber 1. weiß ich nicht wo denn immer zeigt er irgendwelche fehler an :-(
 
Zurück